// MultiEquipSelector.cpp: implementation of the MultiEquipSelector class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "MultiEquipSelector.h"
#include "EquipManager.h"
#include "Equip.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

MultiEquipSelector::MultiEquipSelector()
{
	SetSelectorType(EquipType);
}

MultiEquipSelector::~MultiEquipSelector()
{
	if(m_EquipList.IsEmpty())
	{
		m_EquipList.RemoveAll();
	}
}

void MultiEquipSelector::FindObject()
{
	if(!IsContinue()) return;

	Equip* pEquip =NULL;
	UESoft::ErrorStatus nState = 
		GetCurEquipManager().FindEquip(this->GetCurObjId() , pEquip);
	if(nState != UESoft::eManagerSuccess)
	{
		SetState(Select_ObjNotExisted);
		return;
	}

	m_EquipList.AddTail(pEquip);
	SetState(Select_Success);
}

void MultiEquipSelector::GetSelected(EquipList* pEquipList)
{
	ASSERT(pEquipList!=NULL);
	POSITION pos = m_EquipList.GetHeadPosition();
	for(int i =0;i < m_EquipList.GetCount() ; i++)
	{
		pEquipList->AddTail(m_EquipList.GetNext(pos));
	}
}
